SyncField buffering: expanded docs, simplified code flow, and improved UX#533
Merged
SyncField buffering: expanded docs, simplified code flow, and improved UX#533
SyncField buffering: expanded docs, simplified code flow, and improved UX#533Conversation
SyncFieldUtil.bufferedChanges has all required information required already available. As such, the removed field served no purpose.
No functional changes.
Simplified conditionals, clarified buffering handling, and added more descriptive comments. No functional changes.
This reduces network traffic while improving UX by ensuring only the final change is sent. It prevents the field from snapping back to older values mid-interaction due to intermediate syncs being sent back by the server.
When updating a bill's repeat/target count using the `+/- 1/10` buttons and playing with a laggy connection the UX is not great as it's possible to click multiple times in quick succession and have the change registered as if the button was clicked only once. This fixes that.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Best reviewed commit-by-commit. Only the last two commits introduce functional changes. All previous commits are non-functional - they focus on improving documentation, renaming for clarity, and simplifying the code flow.
As for the functional changes they are meant to improve user UX and avoid input jerkiness. See below videos for comparison of the actual effect (host is on the left side; a 50ms artificial latency is applied between host and client). At the beginning of each video I demonstrate the effects of delaying syncing until 200ms have passed without any further user input using the ingredient radius slider. In the second part I show the effect of buffering
SyncBillProduction. In both videos, the click speed was approximately the same. However, in the "before" video, some of the clicks were lost, whereas the "after" behavior ensures the user input is correctly handled.Before:
Buffering-Before-2.mp4
After:
Buffering-After-1.mp4